In multi-processor systems, a number of different methods may be used to determine which processor handles an external interrupt. Some of these methods may only produce a single choice. For example, in asymmetric systems, all interrupts are handled by a designated processor; in other systems each external device capable of causing an interrupt is connected to only one processor and can interrupt only the processor to which it is connected.
Other methods produce a set of processors which are capable of handling a given external interrupt. For example, all processors which have not disabled a given interrupt may be included in the set; one of the processors is selected from that set. A variety of algorithms may be used to perform this selection, such as a simple round-robin scheme in which each processor is selected sequentially to handle an interrupt.
Improved methods and systems for distributing the interrupt handling tasks are desired to improve parallelism in multi-processor systems.